/*
 * CompressionProcess
 *
 *  Created on: 10/06/2011
 *      Author: Agustina I. Stekolschik & Ezequiel Palumbo
 */
#ifndef COMPRESSIONPROCESS_H_
#define COMPRESSIONPROCESS_H_

namespace providers{

class CompressionCommand{
public:
	CompressionCommand() {};
	virtual void doCompressionProcess() =0;
	virtual ~CompressionCommand() {};
};

class CompressionProcess : public CompressionCommand{
public:
	CompressionProcess(const char* aFileRoute);
	void doCompressionProcess();
	virtual ~CompressionProcess();
private:
	const char* fileRoute;
};

class DecompressionProcess : public CompressionCommand{
public:
	DecompressionProcess(const char* aFileRoute);
	void doCompressionProcess();
	virtual ~DecompressionProcess();
private:
	const char* fileRoute;
};

class CompressionProcessProvider{
public:
	static CompressionCommand* createCompressionCommand();
	static void setCompressionCommand(const char* methodName);
	static void setCompressionFileRoute(const char* aRoute);
private:
	static bool compression;// por default true;
	static const char* fileRoute;
};

}

#endif
